Le démembrement et les partitions

 
 
Le démembrement est un fonctionalité du jeu qui permet de détruire ou de sectioner un membre ou la tête d'un personnage.
 
C'est quelque chose d'assez complexe à mettre en oeuvre et à reproduire sans se retrouver avec un foutoir épouvantable.
 
Par exemple des membres qui disparaissent alors qu'ils ne le devraient pas, ceux qui restent alors qu'un membre arraché est créé à côté, des parties du corps qui disparaissent etc...
 
Tous ces problèmes viennent du fait que les partitions du modèles n'ont soit pas été faites correctement soit pas été exportées dans le bon ordre.
 
En fait on se retrouve devant ces difficultés simplement parce que le script d'exportation ne permet pas d'exporter un modèle au format .nif valide pour le jeu et qu'on doit bricoler avec NifSkope pour remettre tout en ordre en se basant sur un modèle existant.
Toutes nos difficultés viennent du fait simple que le modèle d'origine qu'on utilise comme base pour y copier nos parties de modèle afin de créer un modèle valide, n'a pas été exporté du même programme de modelage et pas avec les mêmes plugins d'exportation.
On se retrouve alors avec un modèle de base dont l'ordre des os du squelette et des partition dans le fichier nif n'est pas le même que le notre, et lorsqu'on fait de simples copies de parties de fichier nif dans un autre, si l'ordre n'est pas le même c'est la catastrophe.
On l'a vu lorsqu'on a copié les données de géométrie, le modèle était complètement disloqué, lorsqu'on y a ajouté les données de skin ça s'est à peine amélioré, puis lorsqu'on a ajouté le données de partition on s'est retrouvé avec un modèle ressemblant à un picasso réalisé sous LSD!. Ce n'est que lorsqu'on a remis les os dans le bon ordre que le modèle est redevenu normal.
 
Pour les partitions, c'est pareil, lorsqu'on les copie dans un autre fichier nif de provenant pas de la même source, l'ordre n'est pas le bon. C'est la raison pour laquelle lorsqu'on arrache le bras gauche, c'est la jambe droite qui disparait par exemple et les fermetures des membres arrachés ne sont pas placées au bon endroit.
 
On va devoir remettre les partitions dans le bon ordre avec NifSkope, c'est très simple à faire.
 
On va ouvrir notre modèle et il va falloir procéder à la remise en ordre des partitions sur tous les éléments du modèle concerné.
 
Généralement un modèle est composé de la partie du corps non recouverte par des vêtements : Arms01, la partie concernant les habits ou armure : Upperbody, et également les 4 parties servant de fermeture pour le démembrement.
 
On va ouvrir en fait deux fenêtres de NifSkope avec notre modèle pour pouvoir comparer l'ordre des partitions et le corriger.
 
Dans la première on va sélectionner Arms01/ BSDismemberSkinInstance/ NiSkinPartition . Et dans la fenêtre du bas on va ouvrir la liste des partitions de Skin Partition Block . On peut alors sélectionner une des 9 partitions standard et voir à quelle partie du modèle ça correspond.
Visualisation des partitions
 
Dans l'autre fenêtre de NifSkope, on va ouvrir Arms01 / BSDismemberSkinInstance . Dans la fenêtre du bas on va ouvrir la liste des Partitions. Pour chacune on va ouvrir les détails et voir les noms des parties de modèle et leur ordre.
 
Liste des partitions
 
On voit tout de suite le problème, dans l'exemple des images ci dessus on voit que le second élément de partition correspond à la jambe droite, mais dans la liste de l'autre image, on a pour ce deuxième élément le nom : BP_LEFTLEG qui veut dire en anglais BP_(jambe gauche).
On va alors ouvrir la liste déroulante des partitions disponibles et mettre BP_RIGHTLEG comme dans l'image ci-dessous.
Correction de l'ordre des partitions
On va faire ainsi pour les 9 partitions de Arms01.
 
Mais lorsque ce sera fait, ce ne sera pas encore terminé, il faudra faire la même chose pour Upperbody et les 4 parties de fermeture de membres, sinon les habits ne seront pas découpés comme le corps et les fermetures ensanglantées n'apparaitront pas au bon endroit.
 
Bon cette fois tout devrait être en ordre normalement, mais parfois lorsqu'on visualise les partitions dans NifSkope, on a des résultats étranges et des partitions qui semblent totalement fausses.
 
Partitions non exportées
Dans l'exemple ci-dessus, le problème c'est qu'on a que 2 partitions au lieu de 9 et le découpage semble aléatoire. La raison est que lors de l'exportation de notre modèle à partir de Blender on a désactivé l'exportation de partition dans le plugin d'exportation. On voit bien qu'on n'a pas de section BSDismemberSkinInstance dans Arms01, la solution c'est de refaire une exportation en activant l'option d'exportation de démembrement.
Option d'exportation de Blender
 
Mais parfois même en activant cette option, les partitions sont complètement fausses, on a bien 9 partitions, mais sur le modèle la répartition ne correspond à rien de valide.
 
Erreur de partitions
Dans l'exemple ci-dessus on a bien 9 partitions, mais on voit bien que la répartitions sur le modèle ne correspond pas aux partitions standard qu'on devrait trouver.
 
C'est peut-être du à une erreur du plugin d'exportation, ou alors c'est du au fait qu'on a importé une partie de notre modèle dans un autre qui n'avait pas forcément le même ordre de partions ni des os du squelette. Et peut-être que l'ordre dans lequel on a ajouté les parties de notre modèle dans un modèle d'origine différent pose problème.
La solution a été simple, il a suffit de réexporter le modèle de blender, de vérifier les partitions dans NifSkope puis de les importer à nouveau dans notre modèle qui a déjà été corrigé et qui n'a que ce problème de partitions.
Cette fois, c'est très simple et très rapide, on ne copie que NiSkinPartition et on corrige l'ordre des partitions si nécessaire comme on vient de le voir plus haut.
 
Si lorsque vous vérifiez les partions dans NifSkope avant de les copier et que vous remarquez que la répartition sur le modèle est fausse, il se peut que vous ayez modifié celle-ci dans Blender ou alors vous n'avez pas créé ces partitions si vous êtes parti de zéro sans avoir importé un odèle existant pour le modifier.
 
 
Sui vous avez un tel problème rendez vous sur la page de Modélisation avancée pour Fallout 3 avec Blender .